/*
 * Copyright (c) 2025, 大连理工大学 (Dalian University of Technology)
 *
 * Licensed under the Mulan PSL v2.
 * You can use this file according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of the License at
 *
 *     http://license.coscl.org.cn/MulanPSL2
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SEE THE MULAN PSL v2
 * FOR MORE DETAILS.
 */

#pragma once

#include "Utility/Configuration/SGParameter.h"

class ISubcaseRepository
{
  public:
    ISubcaseRepository () {};
    virtual ~ISubcaseRepository () {};

    /// @brief 初始化仓库，只能初始化一次
    /// @param entity
    virtual void Initial (SG::Utility::SGParameter entity) = 0;

    virtual SG::Utility::SGParameter GetSubcase () = 0;
};
